home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / mac / PageMaker 6.5 SDK Mac / SourceCode / Includes / CIPrint.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-11-18  |  4.1 KB  |  121 lines  |  [TEXT/CWIE]

  1. /**[f******************************************************************
  2.  *    CIPrint.h -- Printing interface
  3.  *
  4.  *    Copyright(C) 1996, Adobe Systems, Inc.
  5.  *
  6.  *    $Revision:   1.2  $
  7.  *
  8.  *
  9.  *
  10.  **********************************************************************/
  11. #ifndef __CIPRINT_H
  12. #define __CIPRINT_H
  13.  
  14. // Some data structures
  15. //
  16. //    One thing that developers needs to remember is that all the LPSTR
  17. //    fields defined bellow, developer needs to allocate the memory space
  18. //    and free the space themselve. 
  19. //
  20. //    Printer capabilities
  21. //
  22. typedef struct _printerCap {
  23.     unsigned short    isPSPrinter        : 1;    // Printer is PostScript printer
  24.     unsigned short    menuFeedOK         : 1;     // Capability to handle menu feed
  25.     unsigned short    custompaperOK    : 1;    // custom paper
  26.     unsigned short    duplexOK        : 1;    // duplex
  27.     unsigned short    colorOK            : 1;    // color
  28.     unsigned short    binaryOK        : 1;    // handle binary image
  29.     unsigned short    unused            : 10;
  30. } PMPrinterCaps;
  31.  
  32. //    Print document related parameters
  33. //
  34. #define PRINT_BOTH    0
  35. #define PRINT_EVEN    1
  36. #define PRINT_ODD    2
  37.  
  38. typedef struct _printDoc {
  39.     unsigned short    collate            : 1;    // 1 for collate
  40.     unsigned short    reverse            : 1;    // 1 for reverse order printing
  41.     unsigned short    proof            : 1;    // 1 for doing proof
  42.     unsigned short    blank            : 1;    // 1 for including blank page
  43.     unsigned short    independence    : 1;    // 1 for page independence
  44.     unsigned short    book            : 1;    // 1 for do book printing
  45.     unsigned short    bookspec        : 1;    // 0 for off, 1 for use settings of
  46.                                             // each pub. 0 for non-PS printer
  47.     unsigned short    orientation        : 1;    // 1 for wide, 0 for tall
  48.     unsigned short    spread            : 1;    // 1 for doing spread
  49.     unsigned short    doDropOuts        : 1;    // 1 for do drop outs
  50.     unsigned short    both            : 2;    // 0 for both, 1 for even, 2 for odd
  51.     unsigned short    doAllPages        : 1;    // 0 for page range and 1 for all pages
  52.     unsigned short    unused            : 3;
  53.     unsigned short    copies;                    // number of copies
  54.     char*            range;                    // page range to print
  55. } PMPrintDocParms;
  56.  
  57. //    Print paper related parameters
  58. //
  59.  
  60. #define SCALE_NORMAL    0
  61. #define SCALE_FIT        1
  62. #define SCALE_THUMBNAIL    2
  63.  
  64. #define TILING_NONE        0
  65. #define TILING_MANUAL    1
  66. #define TILING_AUTO        2
  67.  
  68. #define DUPLEX_NONE        0
  69. #define DUPLEX_SHORT    1
  70. #define DUPLEX_LONG        2
  71.  
  72. typedef struct _printPaper {
  73.     char*            size;                            // paper size
  74.     char*            source;                            // paper source
  75.     unsigned long    length;                            // paper length
  76.     unsigned long    width;                            // paper width
  77.     unsigned long    slowoffset;                        
  78.     unsigned long    fastoffset;            
  79.     short            tiling;                            // 0: no-tile; 1: manual; 2: auto
  80.     long            overlap;                        // overlap amount for tiling
  81.     short            scaletype;                        // 0: normal scaling; 1: reduce to fit; 2: thumbnail
  82.     short            scaleAmt;                        // scale amount, when scaletype is 2, it is the number of
  83.                                             // thumbnails
  84.     short    duplex;                            // 0: no duplex; 1: is short edge; 2 is long edge
  85.     unsigned short    orientation : 1;        // 1 for wide, 0 for tall
  86.     unsigned short    center        : 1;        // 1 for do center
  87.     unsigned short     unused        : 14;        
  88. } PMPrintPaperParms;
  89.  
  90. //    Print Color related parameters
  91. //
  92. typedef struct _printColor {
  93.     unsigned short    doSeparations    : 1;    // 1: separation; 0: composite
  94.     unsigned short    doColors         : 1;    // 1: color printing; 0: b/w printing
  95.     unsigned short    doConvert        : 1;    // 1: convert all color to process color
  96.     unsigned short    doMirror         : 1;    // 1: mirror
  97.     unsigned short    doNegative         : 1;    // 1: negative 
  98.     unsigned short    preserveEPS        : 1;    // 1: preservedEPS color is checked
  99.     unsigned short    unused            : 10;        
  100.     char*            screen;                    // screen name
  101. } PMPrintColorParms;    
  102.  
  103.  
  104. class CIPrint : public CIInterface  {
  105.  
  106. public:
  107.     //    Get and set parameters in print doc panel
  108.     virtual PMXErr    GetPrintDocParms( PMPrintDocParms *pDoc ) = 0;
  109.     virtual PMXErr    SetPrintDocParms( PMPrintDocParms *pDoc ) = 0;    
  110.  
  111.     //    Get and set parameters in print paper panel
  112.     virtual PMXErr    GetPrintPaperParms( PMPrintPaperParms *pPaper) = 0;
  113.     virtual PMXErr    SetPrintPaperParms( PMPrintPaperParms *pPaper) = 0;
  114.  
  115.     //    Get and set parameters in print color panel
  116.     virtual PMXErr    GetPrintColorParms( PMPrintColorParms *pColor) = 0;
  117.     virtual PMXErr    SetPrintColorParms( PMPrintColorParms *pColor) = 0;
  118. } ;
  119.  
  120. #endif
  121.